Method for routing messages from a source node to a destination node in a dynamic network

ABSTRACT

A method for updating routing tables in ad-hoc networks (AHN), such as networks including mobile nodes communicating via wireless links, is disclosed. The method utilizes both stochastic and empirical information for updating routing tables at loss or gain of neighbor nodes.

FIELD OF THE INVENTION

The present invention applies to the problem of routing in ad-hocnetworks (AHN). Such networks may consist of mobile nodes, whichcommunicate via wireless links.

BACKGROUND OF THE INVENTION

Communication in AHN may take place directly between two mobile nodes,if they are within an appropriate range of one another. More common isthe case of multi-hop routing, in which nodes lying between the sourcenode S and destination node D serve as routers, conveying data fromsource to destination via multiple hops. It is technically challengingto find such multi-hop paths, since the topology of the AHN isconstantly changing due to the motion of the nodes. Thus it is, ingeneral, challenging to route messages between nodes in an AHN.

It should be noted that routing from a mobile node to a gateway node G(which is usually fixed in place) is also of significant interest. Thegateway node then gives access from the mobile AHN to a fixed network.Node-gateway routing can in principle include the multi-hop case, inwhich (again) intermediate mobile nodes serve as routers passing data toand from the gateway.

The phrase “multi-hop routing in an ad-hoc network” can be used to applyto either of these two cases (mobile mobile and mobile gateway).

The problem is to find good paths between pairs of nodes in an AHN thatwish to communicate. There are various criteria for “good” paths. Thepath must be feasible (that is, it must not be based on outdatedtopology information, which uses links that no longer exist). The pathshould also be as short as possible to minimize the use of bandwidth forrelaying; and it should avoid congested areas which give rise toundesirable delay in the passing of data.

Depending on the circumstances and the application, there can be othercriteria for goodness of a path. The present invention is useful for anycriteria of goodness, as long as these criteria can be measured in thecourse of the transmission of the data along the path. The criteriamentioned above (existence, length, and delay of the path) are allmeasurable.

Finding good paths is a readily soluble problem for a fixed, staticnetwork. When the network topology is time dependent, entirely newproblems arise. For a realistic and practical span of node mobility andwireless communications range, the network topology of an AHN can changemore rapidly than traditional methods, used for static networks, canfollow. Hence new path-finding (routing) methods must be found for suchdynamic networks.

Routing in AHN has been studied intensively over the last 10-15 years.The number of proposed routing protocols for an AHN is very large, andit is not practical to try to list them all here.

Some overviews of ad-hoc routing protocols include the following:

S. Ramanathan and M. Steenerup, “A survey of routing techniques formobile communications networks”, Mobile networks and Applications, vol.1 no. 2, p. 89, 1996.

J. Broch, D. A. Maltz, D. B. Johnson, Y.-C. Hu, and J. Jetcheva, “Aperformance comparison of multi-hop wireless ad hoc network routingprotocols”, Proc. MobiCom '98, Dallas, Tex., USA, 1998.

E. M. Royer and C.-K. Toh, “A review of current routing protocols for adhoc mobile wireless networks”, IEEE Personal Communications, April 1999,p. 46.

An electronic overview by Christian Tschudin of Uppsala University isat:

http://www.docs.uu.se/tschudin/lect/2Q002001/dn2/slides/ad hoc-4up. ndf.

There is also a working group of the Internet Engineering Task Force(IETF), which is dedicated to Mobile Ad-hoc Networks or MANETs. See:

http://www.ietf.org/html.charters/manet-charter.html.

Further, stochastic routing has been proposed for routing in fixed (butdynamic) networks in numerous research papers. There is one researchpaper describing a specific stochastic routing scheme for ad-hocnetworks: P. Gupta and P. R. Kumar, “A system and traffic dependentadaptive routing algorithm for ad hoc networks, Proceedings of the 36thIEEE Conference on Decision and Control, pp. 2375-2380, San Diego,December 1997.

Stochastic routing is a form of multipath routing. In multipath routing,nodes maintain routing tables (RTs) with multiple choices of path foreach possible destination. For dynamic networks it is advantageous tomaintain multiple paths, as it allows for rapid change of path in casethe first choice of path fails. Stochastic routing entails themaintenance of information about multiple paths, and also that thechoice among multiple paths be made probabilistically rather thandeterministically. Thus stochastic routing necessarily involves thefollowing elements: each node S. viewed as a source of data, maintainsan RT for every possible destination D. Each such RT has an entry forevery neighbor k of S with a probability p(k, D). Thus, whenever dataare to be sent from S to D, neighbor k is chosen with probabilityp(k,D).

Most ad-hoc routing protocols attempt to find a full path from a firstnode S to a second node D before sending data. There are two broadcategories for protocols doing this:

Proactive protocols: These protocols attempt to maintain a completerouting solution for the entire network at all times. In this sense,they are like those approaches used for routing on a static network,although they are of course adapted to better deal with the dynamicnature of the AHN. These protocols are also known as “table-driven,”since they attempt to maintain information amounting to a complete setof routing tables for all S-D pairs.

Reactive protocols: These protocols attempt to find paths from S to Donly when the source S needs to send data to destination D. They arealso known as “source-initiated” or “on-demand” protocols. A recentevaluation of two of the most prominent on-demand protocols is: C. E.Perkins, E. M. Royer, S. R. Das, and M. K. Marina, “Performancecomparison of two on-demand routing protocols for ad-hoc networks”, IEEEPersonal Communications, February 2001, p. 16.

There are ad-hoc routing schemes that do not need to find a full pathbefore sending data. Such schemes use one or both of the followingmechanisms:

Hierarchical protocols: the network is broken up into clusters. Routingwithin a cluster is done by any of the above-mentioned non-hierarchicalmethods. However, routing to a node outside S's cluster is done bysending the data to a designated gateway node. (Here the gateway is toanother cluster, not to a fixed net; the gateway nodes are also mobilenodes.) Data are then passed from cluster to cluster via the gatewaynodes that must solve the intercluster routing problem until it reachesthe cluster in which D lies. Then the data are routed to D using theintracluster protocol. Such hierarchical routing mimics that used forthe static Internet.

Location-aided protocols: If S knows its own geographic location, aswell as that of D, it can send data in the direction of D withoutknowing a complete path to D. The challenge is then to maintainup-to-date information on the location of possible destination nodes,which are mobile. If the destination node is a fixed gateway node G(giving access to a fixed net), then this challenge is trivial and oneneeds only to equip each mobile node with positioning technology.

There is probably no unique best solution to the problem of multi-hoprouting on an ad-hoc net. Such networks can vary widely in the mobilityof the nodes and in the pattern and volume of internode traffic. Eachdifferent type of routing scheme has its own weaknesses as describedbelow.

Proactive protocols: Such protocols obviously work best when the networktopology is slowly varying. By the same token, when the network is toodynamic (e.g., because the nodes are too mobile) these protocols swampthe network with overhead messages, seeking to hold the full set ofrouting tables updated in the face of too much time variation of thenetwork. That is, these protocols fail when the network topology changestoo often—typically because the node mobility is too high, and/or thenetwork is too large. In short, the principle problem with proactiveprotocols is the large routing overhead incurred for dynamic networks.

Reactive protocols: These protocols seek routes only when they areneeded, thus reducing their routing overhead with respect to proactiveprotocols. That is, their routing overhead grows with network trafficrather than with network transience. These schemes can thus work wellfor a highly dynamic network, as long as the traffic rate is not toohigh. For this reason they tend to be preferred over proactiveprotocols.

Reactive protocols fail when the rate at which paths must be foundexceeds the rate at which they can be found. This occurs due to hightraffic (which increases the former rate), high network transience(which increases the former rate and decreases the latter), or largenetwork size (which decreases the latter rate). They are particularlyvulnerable to the latter factor: if the network grows too large, thenthe time needed to find paths on demand can exceed the time for whichthe path is valid—at which point routing becomes impossible.

Of course, there is no AHN routing scheme which can handle anarbitrarily large network. However, the need to find an entire path inreal time is a significant bottleneck for both of these classes ofprotocols-reactive and proactive.

Hierarchical protocols: These schemes avoid the need to find an entirepath before sending data. However, they face problems similar to thosefaced by proactive schemes—that is, they fail for networks that are toolarge and/or too dynamic. The reason is that they must repeatedly solvea network-wide problem: the choice of how to cluster the nodes into ahierarchy, and how to route between the clusters. For some mobilitypatterns (say, when nodes tend naturally to move in clusters), thesolutions to this global problem will not vary too rapidly. However, forthe general AHN, with highly mobile nodes moving in an uncorrelatedfashion, a hierarchical scheme will incur unacceptable overhead costs,particularly if the network is large.

Location-aided protocols: These protocols largely avoid the overheadproblems of the above-mentioned types, as they simply need to know thelocation of their destination in order to send data. They then have twoweaknesses. First, it can be difficult to obtain good enough informationabout the location of the destination. The source does not need exactknowledge of D's location, and so such schemes can work withpartly-outdated information. Furthermore, regular communication with Dserves to keep its location updated. Hence a problem arises only whennodes communicate in an irregular fashion (over time) with a number ofdifferent nodes, which are also far away geographically.

A second problem with location-aided routing schemes is that theynaturally rely on “aiming” the data towards D. That is, the next hop ischosen to be that neighbor closest to D. The problem arises when dataarrive at a node that cannot reach D directly and which also has noneighbor which is closer to D than it is itself. Such a node representsa “dead end” for this type of routing scheme, which thus must beaugmented with some mechanism for routing around dead ends. Dead endsare most likely for AHNs with a low and/or very uneven density of nodes.

Finally (as noted above), note that routing to a fixed gateway node hasonly the second of these two problems since the location of thedestination G is always known.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide a method thateliminates the drawbacks described above.

For this end, the present invention discloses a method for routingmessages from a source node to a destination node in a dynamic network,said source node including a routing table, each row in the routingtable representing a possible destination node for a data messagetransmitted from the source node, and each row in the routing tableincluding one probability value for each neighbor node of the sourcenode, the method including to update the probability values with qualitymeasurements taken each time a message is sent from the source node to adestination node, routing a predefined percentage of the messages bychoosing the neighbor node with the highest probability value in the rowfor a destination node in the routing table, and routing the othermessages by distributing the messages among the neighbor nodes accordingto the probability values given in the same row in the routing table.

However, the exact scope of the invention is evident from the appendedpatent claims, which includes several preferred embodiments.

DETAILED DESCRIPTION

As earlier mentioned, in general, it is challenging to route messagesbetween nodes in an AHN. It is to this routing problem the presentinvention is addressed, in particular to multi-hop routing in an ad-hocnetwork.

As earlier mentioned, stochastic routing has been proposed for routingin fixed (but dynamic) networks in numerous research papers and a formof stochastic routing for AHN has been proposed in Gupta et al.

The present invention employs stochastic routing for AHN. It involvesthe use of the data packets themselves as a means for updating thenodes' routing tables (RTs), with a novel mixture of stochastic anddeterministic routing for the data. The present invention also includesa novel method for updating RTs in the event of the establishing of anew link.

Every stochastic routing scheme needs a method for updating the RTprobabilities (also called “weights”). In this proposed invention, eachtime a message is sent from S to D, it will measure the quality of thepath taken. The quality measure may be number of hops, time delay, orother measures, or a combination of these. The method proposed here canbe used for any such quality measure, as long as it is measurable. Thequality measure for the path, along with the actual path taken, is thencarried along with the data packet. This information represents a smallamount of overhead included with the sending of data.

RT updates are then performed as follows. If the links in the networkare symmetrical, then the message can update RTs pointing towards S ateach node N visited on the path since, by symmetry, the quality of theS-N path is the same as the quality of the N-S path, so that the formercan be used to update N's RT for destination S.

If the links are not symmetrical, then the message arrives at D withinformation on the quality of the S-D path taken, plus a measure of thequality of all intermediate paths of the form S-N. This information isthen sent back to S via a small, high-priority routing packet and usedto update the RTs at S for all nodes used in the path. Hence, thismethod requires that nodes have a mechanism for prioritizing packets, sothat these return routing packets can be given high priority. This inturn prevents the information they convey back to S from becomingobsolete.

The measured quality of a path may be termed δ. Let p(k,D)(old) be theprobability in the RT towards D via k before updating. Then the updatedvalue is

${{p\left( {k,D} \right)}({new})} = \frac{{{p\left( {k,D} \right)}({old})} + \delta}{1 + \delta}$for the case that neighbor k was used in the path. The remaining entriesj for destination D are corrected to hold the probability sum to one:

${{p\left( {j,D} \right)}({new})} = \frac{{p\left( {j,D} \right)}({old})}{1 + \delta}$This gives a general method for updating the weights in the RTs. Thespecific method for determining the update weight δ depends on thequality measure to be used. It can also be adjusted to force the networkto adapt more quickly, or less quickly, in order to tune the performanceof the method. These details are not specified in this invention, asthis part of the updating procedure is not different from known methodsfor static networks.

According to a preferred embodiment of the invention, every message isused as a source of updating information for the stochastic RTs. Hence,this method naturally adjusts the updating rate according to the trafficrate: at high traffic, RTs are frequently updated, and are hence likelyto be reliable.

There is another updating mechanism proposed in this invention, which isindependent of traffic rate, but instead is triggered by changes innetwork topology. This second mechanism thus keeps RTs updated even atlow traffic rates, while playing a minor role at high traffic rates.

The second updating mechanism is initiated by any node j when that nodedetects a change in its neighbor set NS(j). The set of neighbors for anode using wireless links is something to be decided by an algorithmthat adjusts power level in order to maintain connectivity, whileattempting to hold interference among the various links as low aspossible. There is a number of such algorithms in use for AHNs. Thepresent invention does not specify this algorithm. What is specified isa rule for responding to a change in the NS. Here there are two possiblecases: (a) a neighbor is lost; and (b) a neighbor is gained.

-   a) Loss of a neighbor: Suppose node j has lost its connection to    neighbor k. There are then two tasks to be performed: (i) the RTS    for all destinations D must be adjusted to reflect the removal of    neighbor k. (ii) Node j must build a set of weights (i.e., a new row    in its RT) specifying how to route to k, since k is no longer a    one-hop neighbor.    -   (i) For every destination D, the weights for the remaining NS of        j must be adjusted so as to sum to one. It is proposed in this        invention to adjust these weights in such a way that they retain        the same relative weight that they had before the loss of        neighbor k. This rule is motivated by the fact that loss of        neighbor k has not provided any new information about the        relative goodness of the remaining paths to D.    -   (ii) Node j must wait a (tunable) time interval Δt(1) after        detecting loss of neighbor k. If connection to k has not been        re-established after this time, and if node j has not attempted        to send any data to k in that time, then node j shall emit a        “dummy” message whose sole purpose is to provide needed routing        information between j and k. The RT of j towards k is initially        set to equal weights, that is all neighbors of j are taken to be        equally likely to provide a path to k. Hence, the dummy message        emitted by j will choose outgoing neighbors of j with equal        probability in its search for k. Subsequent nodes in the path        will have routing information towards k; here the dummy message        will choose the highest-weight path for its next hop along the        way to k. For symmetric links, the dummy's quality measure can        be used to update the RT (towards j) of each node visited along        the way to k (including k itself). For either symmetric or        asymmetric links, upon reaching k, the dummy triggers a        high-priority routing packet, which returns to j with a quality        measure which can be used to update j's RT towards k. If j has        not received such a confirmation after a (tunable) time Δt(2)        since the emission of the dummy, j will emit another dummy.        Thus, j will continue to emit dummies, seeking the lost neighbor        k, until it succeeds. Note that with high probability for        asymmetric links, and with 100% probability for symmetric links,        when j loses k as a neighbor, k also loses j, and so begins        emitting dummies seeking j. The result of step (ii) is then that        j and k have re-established up-to-date routing information        connecting the two nodes.-   b) Gain of a new neighbor: Suppose j has gained a new neighbor w.    Now there is only one task to be done, since the analogue of    (ii)—finding the lost neighbor—is not needed here. The task is then    to adjust j's RT for all possible destinations D (other than w),    given that j has acquired a new neighbor. It is desirable to use the    routing information stored in j's RTs, and also to use the routing    information stored in w's RTs. This is done as follows.

The object is to pool information from nodes j and w about how to reachdestination D. The first step is to assess the quality of theinformation held by j and w, respectively. Quantitatively, j computes arouting-quality rating RQR(D,j) for each destination D in its RT:RQR(D,j)=p(max,D)−p(min,D)where p(max,D) is the largest weight in j's current list for destinationD, and p(min,D) is the smallest. Computed in this way, any RQR has aminimum value of zero (nothing is known about routing to D), and amaximum of one (in which case only one, best route to D has any weight).Node j also requests the RQR(D,w) for each destination D from node w.

Now j will give more or less weight to the use of w as a route to D,according to the relative values of the two RQRS. If j had n neighborbefore discovering w, then it has n+1 neighbors afterwards; and so anaverage weight for node w would be 1/(n+1). Node j will deviate fromthis average value if the two RQRS (that of j, and that of w) aredifferent enough, as follows. Let

x = RQR(D, w) y = RQR(D, j)${f\left( {x,y} \right)} = {\frac{1}{n + 1} + {\left( {1 - \frac{1}{n + 1}} \right)\left( {x - y} \right)}}$Then the new weight given to node w in j's RT for D is

${{p\left( {w,D} \right)}({new})} = \left\{ \begin{matrix}{{{f\left( {x,y} \right)}\mspace{14mu}{if}\mspace{14mu}{f\left( {x,y} \right)}} > 0} \\{0\mspace{14mu}{otherwise}}\end{matrix} \right.$This rule gives average weight to w if its RQR for D (which measures howmuch node w “knows” about routing to D) is the same as j's RQR for D.However, if w knows much more than j [RQR(D,w)=l , and RQR(D,j)=o], thenw's new weight in j's routing table will be 100%. Finally, if w's RQR issufficiently less than j's, it will get zero weight. In short, this ruleis designed to assess the relative “wisdom” of the two nodes, regardingthe task of routing to D, and to weight paths to D from j via waccordingly. The remaining weight, that is, 1 p(w,D) (new), is dividedproportionally among the remaining neighbors of j, with the proportionsfixed to be the same as before the discovery of w.

Given a routing table with multiple, weighted entries for eachdestination, there are three choices for how to route a packet towardsthat destination. These choices may be termed “uniform” or u routing,“regular” or r routing, and “greedy” or g routing.

Uniform routing ignores the weights in the RT, and chooses the next hopwith equal probability from the nodes in the neighboring set. Uniformrouting is not likely to be a good choice for routing data. However (asnoted above), dummy messages seeking a lost neighbor node are routed (atthe first hop) uniformly. Furthermore, it can be advantageous to emitsmall numbers of dummy messages even in the absence of changes in theNS. These messages serve as “noise” in the routing process. Theirutility lies in that they can serve to discover good routes which wouldotherwise go unused, in the case that the system's RTs have settled on adifferent set of routes that were once the best, but are no longer so.That is, noise in routing prevents the “freezing” of the system intoless-than-optimal routes. It is common in stochastic routing schemes toemploy a small percentage f% of u-routed dummy messages; and in theproposed scheme such messages will also be used, with f a tunableparameter.

Regular (r) routing sends data with the probabilities given in the RTs.This is stochastic routing.

Finally, greedy (g) routing always chooses the highest weight entry forthe next hop. Hence, this routing method is deterministic.

In studies of stochastic routing on fixed networks, it is common to usea significant number of dummy messages for the purpose of gatheringrouting information. These dummy messages are often called “agents” or“ants,” the latter name coming from their nature as small objectsswarming over the network, and leaving a “trail” behind them that guidesother ants. In order for later ants to be able to profitably learn fromearlier ants, it is important that the ants (dummy messages exploringthe network) are routed with r routing. That is, they must follow theprobabilities established by earlier experience. On the other hand,messages (in these studies) are typically routed using greedy routing:one chooses the best known path at any given time.

Hence, previous studies of stochastic routing on fixed networks haveused r routing for dummy, exploratory messages (ants), and g routing fordata. In the proposed invention, ants and data are to be combined: everydata packet transmitted through the network is used to update RTs, andthere are few empty (dummy) messages used purely for exploring thenetwork. In other words, messages also act as ants. Yet, since the twoare combined, they must be routed by the same rule: g or r routing.

In this invention, it is proposed to use a mixture of the two rules: h%of messages shall be routed with high priority (greedy routing, highestweight) and (100-h)% of messages shall be routed with standard priority(regular routing, according to the weights in the RTs). h is a tunableparameter. This invention employs a mixture of the two routing rules inorder to allow for the benefits of both: g routing will normally givethe best performance for any given message; but r routing is needed tosupport the learning process that the messages, collectively, arecontributing to. Hence, a mixture is chosen, with the proportion of eachto be determined according to the performance achievable under a givenset of operating conditions.

EXAMPLE

Table 1 below shows an example of the routing table (RT) for a node,which we call the source S.

TABLE 1 Neighbor Neighbor Neighbor Neighbor Neighbor 1 2 3 4 5Destination 0.1 0.5 0.1 0.25 0.05 1 Destination 0.45 0.05 0.2 0.1 0.2 2Destination 0.05 0.4 0.05 0.35 0.15 3 Destination 0.2 0.2 0.2 0.2 0.2 4etc.

In this example, the node S has five one-hop neighbors. The RT then hasa “goodness index,” which may be interpreted as a probability, for eachneighbor and for each destination. These indices help the node to decidewhich neighbor to use, for each destination. For example, if S wants tosend to Destination 1, Neighbor 2 is the best choice, according to theRT.

Note (NB): this goodness index is not the route-quality rating RQR.) Forexample, the RQR for node S and Destination 1 is 0.5−0.05=0.45, whileDestination 4 has the lowest RQR of 0.

The “etc” means that, in a typical ad-hoc network, there are more than 4destinations. That is, the network, as seen from S, is composed of Sitself (one node), plus S's neighbors (here 5 more nodes), plus all therest, each of which may have a row in the RT. “Greedy routing” wouldalways choose the neighbor with the highest goodness index. That is,given a destination D, scan the corresponding row of the RT, and pickthe neighbor with highest index.

Since the indices in each row sum to 1, they can be viewed asprobabilities. “Regular routing” then says, given a destination D, scanthe corresponding row of the RT, and choose the first-hop neighbor witha probability which is equal to the index for that neighbor in the row.That is, if S uses regular routing and wants to send to Destination 1, Sneeds an algorithm (this is standard) that chooses Neighbor 1 withprobability 0.1, Neighbor 2 with probability 0.5, etc.

When there are many possible choices of next hop for each destination,and a weight or probability for each one, then we say that the resultingrouting scheme uses “stochastic routing.”

Most (but not all) schemes using stochastic routing will use greedyrouting for messages, and regular routing for “exploration packets” or“ants”. The former carry data, while the latter are used only to explorethe net and gather information for use in updating the RTs. Theinventive scheme asks data packets to take on both jobs. Theprescription for how the data packets shall be routed is new: h% shalluse greedy routing, and (1-h)% then use regular routing. This way, onegets both good delivery and good exploration, while having low overheadby using very few pure-exploration packets.

If the node S loses a neighbor, it will lose a whole column of the RT.Then node S must do two things:

-   (i) readjust the weights in the remaining columns of the existing    rows, so that they again sum to 1.-   (ii) add a new row to the table, since the lost node becomes a new    Destination. With no information about how to find this lost    neighbor, node S fills the new row with equal weights (as    illustrated for Destination 4 in the example RT). However, the    inventive method requires S to send out dummy messages looking for    the lost neighbor.

If node S discovers a new neighbor (there are standard procedures forthis; it is not a part of the present invention), a new column must beadded (and, if the new neighbor was a Destination before, remove thatrow). Adding a new column requires adjusting every row in the RT. Also,the new neighbor (call it NN) has just found a new neighbor, S. Henceboth nodes must update all the rows of their RTs. The inventive methodhas a new and nice way of pooling information from both nodes, the newneighbor NN and S, so as to make the best use of their combined routinginformation, using RQRs.

All of the new (and other) features of the present invention describedhere can be used with hardwired networks, whenever such networks havesufficiently dynamic operating conditions, such as changing trafficpatterns, or nodes or links changing their connectivity, so thatadaptive schemes such as stochastic routing are beneficial.

There is also an important case, termed “mesh networks,” that isintermediate between the hardwired case and the ad-hoc network. Meshnetworks use multi-hop routing among wireless nodes, but the nodes arenot generally mobile. Instead they are fixed to buildings. Such networkscan advantageously use algorithms similar to those used by ad-hocnetworks. Such algorithms allow mesh networks to dispense with centralcontrol, even while allowing nodes (say, at individual homes) to enterand leave the network in an unplanned fashion. That is, mesh networksare most attractive when they support a self-healing mechanism, verymuch like that used with AHN. The methods described in this inventioncould be profitably applied to mesh networks. Examples of companies nowoffering mesh-network technology include MeshNetworks, SkyPilot, CoWave,and Ember.

It is most like that ad-hoc routing will find its widest applicabilitywhen used in combination with fixed networks. Isolated, mobile wirelessnetworks are not likely to be of use except in special cases, butmulti-hop and wireless connectivity promises to be a useful way toextend the reach and capacity of fixed networks with base stations.Thus, the likeliest use of AHNs will involve routing to and from a fixedgateway node, or base station. The present invention will be useful forthis case, and will almost certainly perform better for this case thanfor the “pure” case of only routing between mobile nodes within the AHN.This is because it is less challenging to route to a fixed gateway thanto route to a large number of mobile destinations. Thus, fixedinfrastructure, extended at the “edge” by multi-hop wireless routing,which in turn uses stochastic routing as described here, is a verypromising scenario for future telecommunications systems.

Location-aided routing also promises to perform well in such situations.In the event that it becomes practical to support the provision ofreal-time positioning information on low-cost, mobile, handheld devices,then such information should be combined with stochastic routing to givethe simplest and most reliable support for multi-hop ad-hoc routing.More specifically, the present invention could be combined with locationinformation to give even more effective routing.

1. A method for routing messages from a source node (S) to a destinationnode in a dynamic network, said source node including a routing table,each row in the routing table representing a possible destination node(D) for a data message transmitted from the source node (S), and eachrow in the routing table including one probability value p(k,D) for eachneighbor node (k) of the source node (S), the method comprising:updating the probability values with quality measurements taken eachtime a data message is sent from the source node (S) to the destinationnode (D); routing a tunable predefined percentage of the messages bychoosing the neighbor node with the highest probability value in the rowfor a destination node (D) in the routing table; and routing the othermessages by distributing the messages among the neighbor nodes accordingto the probability values given in the same row in the routing table,wherein the probability values of using a specific neighbor node (k) ofthe source node (S) for transmitting data from the source node (S) tothe destination node (D) are updated according to the followingexpression:$\frac{{{p\left( {k,D} \right)}({old})} + \delta}{1 + \delta}$ where δrepresents the measured quality of a path through the node k, andp(k,D)(old) represents the old probability value amount of using thenode (k) for transmitting data from the source node (S) to thedestination node (D), and the remaining probability values in therouting table are adjusted in such a way that all the probability valuesin each row of the routing table sum to one.
 2. The method of claim 1wherein the quality measures of the path taken are represented by hopsand/or time delays.
 3. A method for routing messages from a source node(S) to a destination node in a dynamic network, said source nodeincluding a routing table, each row in the routing table representing apossible destination node (D) for a data message transmitted from thesource node (S), and each row in the routing table including oneprobability value p(k,D) for each neighbor node (k) of the source node(S), the method comprising: updating the probability values with qualitymeasurements taken each time a data message is sent from the source node(S) to the destination node (D); routing a tunable predefined percentageof the messages by choosing the neighbor node with the highestprobability value in the row for a destination node (D) in the routingtable; routing the other messages by distributing the messages among theneighbor nodes according to the probability values given in the same rowin the routing table; and at the detection of a gain of a new neighbornode (j), for both the new neighbor node (j) and the source node (S),computing one route quality rating (RQR(D,j) and RQR(D,S)) for eachpossible destination node (D), based on the maximum probability valueand minimum probability value for each destination node (D), and for allpossible destination nodes (D), computing a new probability value forthe new neighbor node based on the route quality rating for the neighbornode (j) and the source node (S) and the number of its associatedneighbor nodes.
 4. The method of claim 3 wherein the route qualityrating is equal to a maximum probability value minus a minimumprobability value.
 5. The method of claim 4 wherein the new probabilityvalue for the new neighbor node (j) is: $\left\{ {\quad\begin{matrix}{{\frac{1}{n + 1} + {\left( {1 - \frac{1}{n + 1}} \right)\left( {x - y} \right)\mspace{14mu}{if}\mspace{14mu}{said}\mspace{14mu}{expression}}} > 0} \\{0\mspace{14mu}{otherwise}}\end{matrix}} \right.$ where x is the quality rating of the new neighbornode, y is the quality rating of the source node in question and n isthe number of neighbor nodes before gaining the new neighbor node.
 6. Amethod for routing messages from a source node (S) to a destination node(D) in a dynamic network using a routing table having a probabilityvalue p(k,D) for each neighbor node (k) of the source node (S), themethod comprising: routing a tunable predefined percentage of themessages to a neighbor node having a highest probability value in arouting table; routing a remaining percentage of messages among neighbornodes according to a probability value associated with each neighbornode in the routing table; and updating the probability values withquality measurements taken each time a data message is sent from thesource node (S) to the destination node (D), wherein the probabilityvalues of using a specific neighbor node (k) of the source node (S) fortransmitting data from the source node (S) to the destination node (D)are updated according to the following expression:$\frac{{{p\left( {k,D} \right)}({old})} + \delta}{1 + \delta}$ whereδrepresents the measured quality of a path through the node k, andp(k,D)(old) represents the old probability value amount of using saidnode (k) for transmitting data from the source node (S) to thedestination node (D), and the remaining probability values in therouting table are adjusted in such a way that all the probability valuesin each row of the routing table sum to one.
 7. The method of claim 6wherein the quality measures of the path taken are represented by atleast one of hops or time delays.
 8. A method for routing messages froma source node (S) to a destination node (D) in a dynamic network using arouting table having a probability value p(k,D) for each neighbor node(k) of the source node (S), the method comprising: routing a tunablepredefined percentage of the messages to a neighbor node having ahighest probability value in a routing table; routing a remainingpercentage of messages among neighbor nodes according to a probabilityvalue associated with each neighbor node in the routing table; and atthe detection of a gain of a new neighbor node (j), for both the newneighbor node (j) and the source node (S), computing one route qualityrating (RQR(D,j) and RQR(D,S)) for each possible destination node (D),based on the maximum probability value and minimum probability value foreach destination node (D), and for all possible destination nodes (D),computing a new probability value for the new neighbor node based on theroute quality rating for the neighbor node (j) and the source node (S)and the number of its associated neighbor nodes.
 9. The method of claim8 wherein the route quality rating is equal to a maximum probabilityvalue minus a minimum probability value.
 10. The method of claim 9wherein the new probability value for the new neighbor node (j) is:$\left\{ {\quad\begin{matrix}{{\frac{1}{n + 1} + {\left( {1 - \frac{1}{n + 1}} \right)\left( {x - y} \right)\mspace{14mu}{if}\mspace{14mu}{said}\mspace{14mu}{expression}}} > 0} \\{0\mspace{14mu}{otherwise}}\end{matrix}} \right.$ where x is the quality rating of the new neighbornode, y is the quality rating of the source node in question and n isthe number of neighbor nodes before gaining the new neighbor node.